/**
* Copyright (C) 2021 All rights reserved.
*
* @file main.h
* @author Wang Haibin
* @email wanghaibin@qiyi.com
* @date Fri Sep 30 09:37:02 CST 2022
* @brief  进度条显示示例
*
*  结论：
*         回车(\r)与换行(\n)
*         换行是换到下一行的当前位置，一般用\n表示;
*         回车是回到当前行的开始，一般用\r表示。
*/

#include <stdio.h>
#include <string.h>
#include <unistd.h>

void ProcBar()
{
    int i = 0;
    char proc[102];
    memset(proc, '\0', sizeof(proc));

    while (i <= 100) {
        //C语言格式控制时默认右对齐，所以要在前面加-变成左对齐
        printf("[%-100s] [%d%%]\r", proc, i);
        fflush(stdout); //刷新屏幕打印
        proc[i] = '#';
        usleep(100000); //以微秒为单位的sleep
        i++;
    }
    printf("\n");
}

int main()
{
    ProcBar();
    return 0;
}
